1. Field of Invention
The present invention relates generally to mass digital data storage systems. More particularly, the present invention relates to systems and methods for automatically determining when a digital data storage system is nearing a fault condition or an end of life.
2. Description of the Related Art
The use of non-volatile memory systems such as flash memory storage systems is increasing due to the compact physical size of such memory systems, and the ability for non-volatile memory to be repetitively reprogrammed. The compact physical size of flash memory storage systems facilitates the use of such storage systems in devices which are becoming increasingly prevalent. Devices which use flash memory storage systems include, but are not limited to, digital cameras, digital camcorders, digital music players, handheld personal computers, and global positioning devices. The ability to repetitively reprogram non-volatile memory included in flash memory storage systems enables flash memory storage systems to be used and reused.
As the life of a flash memory storage system is limited, i.e., a flash memory storage system will typically wear out after some amount of use, a flash memory storage system generally must eventually be replaced. A flash memory system that has significantly degraded may fail to retain data reliably, e.g., in sectors or blocks that are worn. A decision as to when it may be appropriate to replace a flash memory storage system may be made when a user notices that the performance of the flash memory storage system is deteriorating, e.g., when a write process is slower than expected. That is, a user may decide to replace a flash memory system based upon his belief that the flash memory system may be nearing the end of its useful life, or may be nearing a fault condition. More typically, however, a user may not realize that it may be necessary to replace a flash memory storage system until the flash memory storage system fails in some way. For example, a user may not realize that a flash memory storage system has substantially reached the end of its useful life or is nearing a fault condition until an attempt to either write data to or retrieve data from the flash memory system fails. A failed attempt to either write data or retrieve data may prove, in some cases, to be relatively catastrophic.
A memory system such as hard disk drive systems may include the capability to generate warnings when a fault condition is near. To monitor the life of hard disk drive systems, some hard disk drive manufacturers provide a feature set that is consistent with a Self-Monitoring, Analysis and Reporting Technology (SMART) feature set. A SMART feature set essentially monitors the internal operations of a hard disk drive and provides warnings pertaining to problems, e.g., an end of life condition, as will be appreciated by those skilled in the art. Diagnostics associated with a SMART feature set are typically run off-line, i.e., when the hard disk drive is not currently processing active commands or servicing user requests.
While the off-line failure prediction process associated with a SMART feature set is generally effective in determining when a hard disk drive may be nearing the end of its useful life or approaching a fault condition, an off-line failure prediction process associated with a SMART feature set often may not initiated, or when initiated, may often not be completed. In other words, an off-line failure prediction process may not be implemented and completed often enough to enable a warning to be generated when the hard disk drive is either near the end of its useful life or near a fault condition. As the implementation of an off-line failure prediction process occurs substantially only when the hard disk drive is not processing active commands or servicing user requests, when a hard disk drive continually has commands to process and requests to service, it may not be possible for an off-line failure prediction process to be initiated. In addition, when an off-line failure prediction process is initiated, the process may not be completed if the computer system which includes the hard disk drive attempts to use the hard disk drive.
The ability to provide an indication of when a hard disk drive or a flash memory system is nearing the end of its useful life or nearing a fault condition would enable a user to act to ensure that his or her data may be retained reliably within the hard disk drive of the flash memory system. While some hard disk drives include the capability to warn a user of when the hard disk drive might be about to fail, even such hard disk drives may not always successfully execute operations to determine when the hard disk drive is about to fail since such operations generally occur off-line and, hence, may fail to occur on occasion, or may be interrupted once they are initiated, as discussed above.
Therefore, what is needed is a method and an apparatus for dynamically determining when a memory device may be either near the end of its useful life or near a fault condition. Specifically, what is desired is a method and an apparatus which enables dynamic predicts to be made as to when a flash memory system may be about to fail or may be about to meet a fault condition.